const underscore = require('underscore');

module.exports = {
    /**
     * @param {string} str
     */
    underline2camel: function (str) {
        let arr = str.match(/_[a-z]{1}/g);
        for (let i = 0; i < arr.length; i++) {
            let ch = (arr[i][1] + '').toUpperCase();
            str = str.replace(arr[0], ch);
        }
        return str;
    },

    timestamp: function () {
        return (Date.now() / 1000).toFixed(0);
    },

    isEmpty: function (obj) {
        if (underscore.isNumber(obj)) {
            if (obj === 0) return true;
            obj += '';
        }
        return underscore.isEmpty(obj);
    },

    uuid: function () {
        var s = [];
        var hexDigits = "0123456789abcdef";
        for (var i = 0; i < 36; i++) {
            s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
        }
        s[14] = "4";
        s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
        s[8] = s[13] = s[18] = s[23] = "-";
        var uuid = s.join("");
        return uuid;
    },

    /**
     * @param {string} str 
     */
    addslashes: function (str) {
        return str
            .replace(/`/g, '\\`')
            .replace(/"/g, '\\"')
            .replace(/'/g, "\\'");
    }
};